#!/bin/bash

#author: 505056357@qq.com

echo "backup job start"

#设置要备份的网站目录，即是网站的根目录

file=/home/wwwroot/default

#设置本地备份目录，用于存放打包后的文件

backpath=/home/wwwroot/bkdata/

dbuser=root

#数据密码，要记得用单引号将把整个密码引起来，如果密码中有单引号就用双引号，嘿嘿

dbpwd='123456'

dbname=car

domain=192.168.0.187

user=ftpuser

userpwd='123456'

bkdate=$(date +%Y%m%d)

sqlfile_sql=${dbname}_${bkdate}.sql

sqlfile_gz=${dbname}_${bkdate}.tar.gz

sqlfp=${backpath}${bkdate}/$sqlfile_sql

if [ -e $backpath${bkdate} ]

then

echo $backpath is exists.

else

mkdir -p $backpath${bkdate}

fi

#执行数据库备份，/apps/mysql/bin/mysqldump修改为你实际环境的路径

/apps/mysql/bin/mysqldump -u $dbuser -p$dbpwd $dbname &gt; ${sqlfp}

#对备份之后的数据库文件压缩，或者在数据库备份时通过加入参数直接进行压缩

tar zcf $backpath${bkdate}/$sqlfile_gz -C ${backpath}${bkdate} ${sqlfile_sql}

#删除未压缩SQL的文件

rm -f ${sqlfp}

#生成的文件名格式：web_网站目录名_20130419.tar.gz

fn=web_${file##*/}_${bkdate}.tar.gz

tar zcf $backpath${bkdate}/$fn -C ${file%/*} ${file##*/}

#以下操作为FTP自动连接并把本地文件上传到异地服务器上

/usr/bin/lftp ${domain} &lt;&lt; END

user ${user} ${userpwd}

lcd ${backpath}

mirror -R ${bkdate}

exit

END

echo "backup job done"